package com.three_learn.star.system.controller;

import com.three_learn.star.system.po.DTO.DepDTO;
import com.three_learn.star.system.po.VO.DepVO;
import com.three_learn.star.system.service.IDeptService;
import com.three_learn.star.project.vo.JsonVO;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import java.util.List;

/*
 *描述 ：
 *Author:28768
 */
@RestController
@RequestMapping("/system/admin/dept")
public class DeptController {

    @Resource
    private IDeptService deptService;

    /**
     * 查找部门
     * @return 返回查找到的部门
     */
    @PostMapping("/list")
    public JsonVO<List<DepVO>> listDepartment(@RequestBody DepDTO depDTO){
        return JsonVO.success(deptService.getList(depDTO));
    }

    /**
     * 分页查询部门
     * @param page
     * @param pageSize
     * @return
     */
    @GetMapping("/list")
    public JsonVO<List<DepVO>> getPageQuery(@RequestParam("page") Integer page,@RequestParam("pageSize") Integer pageSize){
        return JsonVO.success(deptService.getPageQuery(page,pageSize));
    }


    /**
     * 添加部门
     * @param depDTO
     * @return
     */
    @PostMapping("/add")
    public JsonVO<String> add(@RequestBody DepDTO depDTO){
        deptService.add(depDTO);
        return JsonVO.success("新增成功");
    }

    /**
     * 更新数据
     * @param depDTO
     * @return 成功字符串
     */
    @PutMapping("/update")
    public JsonVO<String> update(@RequestBody DepDTO depDTO){
        deptService.update(depDTO);
        return JsonVO.success("修改成功");
    }


    /**
     * 删除部门
     * @param id
     * @return
     */
    @DeleteMapping("/del/{id}")
    public JsonVO<String> delete(@PathVariable("id") Long id){
        if(deptService.deleteById(id))
        {
            return JsonVO.success("删除成功");
        }
        else
        {
            return JsonVO.fail("删除失败,存在子部门");
        }
    }


}
